Modern computer systems often have a plurality of "intelligent" devices interconnected by a high speed data communications link. These can comprise computer busses or computer networks. For the purposes of this description the term "bus" will be used interchangeably for both networks and busses. Within a computer, multiple processors may use an internal data bus to communicate with each other, with shared memory and with shared peripheral devices. Typically only one device can "talk" or "transmit" on the bus at one time. If several devices simultaneously contend for access to the bus, the system must provide an arbitration method for deciding which device is granted access. In addition, network systems must provide a means to separate various control functions, either by providing physically separate signal lines or by time multiplexing over shared signal lines.
U.S. application Ser. No. 07/694,265 filed Apr. 29, 1991 by William S. Jaffe, Russell C. Brockmann, and Leith L. Johnson entitled "Quadrature Bus Protocol for Carrying out Transactions In A Computer System" (hereinafter referred to as the Jaffe-1 application) is specifically incorporated herein by reference for all that it discloses.
The Jaffe-1 application describes a computer bus system interconnecting processors, I/O devices and memory. The system bus architecture is divided into an address/control bus (address bus) and a memory data bus (data bus). The address bus has the necessary signals to initiate all transactions on the system bus. In addition, data associated with an "I/O transaction" (defined later) is transferred on the address bus. Memory transactions consist of four address bus control states followed at some fixed time by four control states on the data bus.
In the Jaffe-1 application and in this application, the word "agent" refers to any general device connected to the system bus which is capable of contending for access to the system bus. Agents might be processors, I/O devices or any other "intelligent" devices. In this specification, an "I/O transaction" refers to a transaction between a processor and any device on the address bus other than memory. For example, a register in one processor being read by another processor is treated as an I/O transaction. I/O transactions may also include slower mechanical peripherals such as disk and tape drives.
In the Jaffe-1 application and in this application, the word "idle" means that no transactions are being processed by the system. In the Jaffe-1 application, agents desiring access to the system bus can contend for access only during the first of four address bus states. Thus, if the system is at the second, third, or fourth states at the time an agent desires access, the agent will have to wait three, two, or one state, respectively, before being able to request access. This delay time is present even if the system bus is idle. Performance may be improved by eliminating this delay time when the bus is idle.